home *** CD-ROM | disk | FTP | other *** search
/ Aminet 23 / Aminet 23 (1998)(GTI - Schatztruhe)[!][Feb 1998].iso / Aminet / util / conv / Text_ConvDocs_e.lha / textconvdocs151e / developer / readconvtab.c < prev   
Encoding:
Text File  |  1997-09-27  |  1.9 KB  |  87 lines

  1.   /*
  2.       readconvtab.c
  3.       Example that shows the way ACT-files are read by TextConv
  4.       Last change: 27.09.1997
  5.  
  6.       Attention: this file is only a code fragment to use as example or model
  7.       This file cant be direct compiled!
  8.   */
  9.  
  10.  
  11.   /*
  12.       Return values:
  13.  
  14.       0 - OK
  15.       1 - Error on opening the file
  16.       2 - file is not an ACT-file
  17.       3 - Wrong ACT verion
  18.       4 - Wrong table identification
  19.       5 - undefined errors
  20.   */
  21.  
  22.   FILE *tabfile;     /* poiter to the table file */
  23.   UBYTE header[20];  /* buffer for header */
  24.   UBYTE error;       /* return value for errors */
  25.   int i;             /* counter */
  26.  
  27.  
  28.   /* Example: ANSI2IBM */
  29.  
  30.   error=0;
  31.  
  32.   if(!(tabfile=fopen("PROGDIR:convtables/ansi2ibm.act","rb"))) /* open file */
  33.   {
  34.       return(1);
  35.   }
  36.  
  37.   fread(header, sizeof(UBYTE), 20, tabfile);           /* red header */
  38.  
  39.  
  40.   /* MagicBytes test */
  41.  
  42.   if((header[0]=='S')&&(header[1]=='C')&&(header[2]=='T')&&(header[3]=='A')&&(header[4]=='C')&&(header[5]=='T'))
  43.   {
  44.      /* MagicByte test successful */
  45.   }
  46.   else
  47.   {
  48.      /* MagicByte failed - return error and quit */
  49.      return(2);
  50.   }
  51.  
  52.  
  53.   /* Version test */
  54.  
  55.   if((header[6]==1)&&(header[7]==0))
  56.   {
  57.      /* Version test (Version 1.0) successful */
  58.   }
  59.   else
  60.   {
  61.      /* Version test failed - set error for return, not quit */
  62.      error=3;
  63.   }
  64.  
  65.  
  66.   /* table identification test */
  67.  
  68.   if((header[8]==' ')&&(header[9]=='A')&&(header[10]=='N')&&(header[11]=='S')&&
  69.      (header[12]=='I')&&(header[13]=='2')&&(header[14]=='I')&&(header[15]=='B')&&
  70.      (header[16]=='M')&&(header[17]==' ')&&(header[18]==' ')&&(header[19]==' '))
  71.   {
  72.      /* table identification test successful */
  73.   }
  74.   else
  75.   {
  76.      /* table identification test failed - set error for return, not quit */
  77.      error=4;
  78.   }
  79.  
  80.  
  81.  
  82.   /* tests finished - load table and quit */
  83.   fread(convTab, sizeof(UBYTE), 256, tabfile);           /* load table */
  84.   fclose(tabfile);
  85.   return(error);
  86.  
  87.